package br.trainee.web.dao.service;

import java.util.List;

import br.trainee.web.vo.ClinicaVO;
import br.trainee.web.vo.EmailClinicaVO;
import br.trainee.web.vo.EnderecoClinicaVO;
import br.trainee.web.vo.TelefoneClinicaVO;


public interface IClinicaDAO extends IEntityDAO<ClinicaVO, Long>{
	
	List<ClinicaVO> consultarClinicaPorNome(String nomeClinica) throws Exception;
	List<ClinicaVO> consultarClinicaPorNomeECnpj(String nomeClinica, String cnpj) throws Exception;
	ClinicaVO detalharClinica(Long idClinica) throws Exception;
	
	boolean atlerarEmailClinica(EmailClinicaVO email) throws Exception;
	boolean alterarEnderecoClinica(EnderecoClinicaVO endereco) throws Exception;
	boolean alterarTelefoneClinica(TelefoneClinicaVO telefone) throws Exception;
	
	List<EmailClinicaVO> consultarEmailPorIdClinica(Long idClinica) throws Exception;
	List<EnderecoClinicaVO> consultarEnderecoPorIdClinica(Long idClinica) throws Exception;
	List<TelefoneClinicaVO> consultarTelefonePorIdClinica(Long idClinica) throws Exception;
	
	EmailClinicaVO consultarEmailPorId(Long idEmail) throws Exception;
	TelefoneClinicaVO consultarTelefonePorId(Long idTelefone) throws Exception;
	EnderecoClinicaVO consultarEnderecoPorId(Long idEndereco) throws Exception;
	
	boolean excluirClinica(ClinicaVO clinica) throws Exception;
	boolean excluirEmailClinica(EmailClinicaVO email) throws Exception;
	boolean excluirEnderecoClinica(EnderecoClinicaVO endereco) throws Exception;
	boolean excluirTelefoneClinica(TelefoneClinicaVO telefone) throws Exception;
}
